Many protocols exist for reliably conveying information from one communication device to another via unreliable communication channels. In some such protocols (such as, automatic repeat request (ARQ) protocols), a sending device transmits information to a target device and, upon receiving the information, the target device transmits a corresponding acknowledgment (ACK) message back to the sending device. Typically, the sending device will set a timer when transmitting the information in case the expected ACK is lost. If the ACK is not received for the information before the corresponding timer expires, the information is retransmitted. Thus, reliable information transfer is achieved.
In such timer-based protocols, the time-out period can affect information transfer characteristics, such as throughput and delay. For example, when the time-out period is too short, a sending device will retransmit information prematurely. A target device may be about to transmit an ACK for some information received from a sending device. But, if a timer corresponding to the information expires in the sending device, the sending device retransmits the information, notwithstanding the fact that the information was received by the target device. Because the time-out period used did not allow the target device to receive, process, and acknowledge the information before the timer expired, the information was not only unnecessarily retransmitted, but also unnecessarily received. Such unnecessary retransmissions inefficiently utilize the communication resources shared by the sending and target devices and, thereby, reduce potential throughput.
On the other hand, when the time-out period is too long, information that needs to be retransmitted is unnecessarily delayed until the corresponding timer expires. Retransmission delay increases the overall information transfer delay and can lead to reduced throughput. For example, the target device may need to buffer received information while waiting for retransmissions of missing information. When such buffers fill, information transfer is effectively halted until some of the retransmitted information is received. Thus, the throughput is reduced.
Therefore, a time-out period which is no longer than the time needed for round-trip link travel and target device processing is optimal. Today, for each acknowledgment timer, designers analyze the amount of time required for link travel and target device processing and attempt to determine an optimal acknowledgment timer value. Such an approach works best when the actual acknowledgment times vary about the selected timer value infrequently or to a small degree. In other words, such an approach works best when the selected timer value in actual practice is rarely too long or too short. The more often the actual acknowledgment times vary from the selected timer value, the less optimal the timer value becomes. The more often the timer value is too short or too long, the more the delay and/or throughput of the information transfer suffers. In systems where the acknowledgment time varies greatly, the resultant throughput reduction and/or information transfer delays can become unacceptable. Thus, acknowledgment timer values determined by today's techniques can become inadequate under conditions of high acknowledgment time variance.
Therefore, a need exists for an apparatus and method for starting an acknowledgment timer, that overcomes the inadequacies of today's timer value determination techniques when acknowledgment times vary.